КомпонентаГруппа шаговИд шагаШагСкриптСкрипт команд ЕРВУКомментарий от АЦ/АПКомментарий команд ЕРВУ
    КонвертацияКонвертация (поставлено на учёт по данным конвертации)1.1.1Формированиеselect '1.1.1' as id_step, coalesce(rm."name",'ВК не определен') as vk_name,rh.date_time::date, rm.code, count(distinct r.id) as count
    from public.recruits r
    inner join public.recruits_history rh on r.id = rh.recruit_id
    inner join public.recruitment rm on rm.id = coalesce(r.current_recruitment_id, r.target_recruitment_id)
    where rh.status = '13'
    group by rm."name",rh.date_time::date, rm.code


    Выборка нарастающим итогом возможна.

    Принадлежность к ВК можно определить только по текущему состоянию.

    КонвертацияКонвертация (поставлено на учёт по данным конвертации)1.1.2Сопоставлениеselect '1.1.2' as id_step, coalesce(rm."name",'ВК не определен') as vk_name, rh.date_time::date, rm.code, count(distinct r.id) as count
    from public.recruits r
    inner join public.recruits_history rh on r.id = rh.recruit_id
    inner join public.recruitment rm on rm.id = coalesce(r.current_recruitment_id, r.target_recruitment_id)
    where rh.status = '12'
    group by rm."name", rh.date_time::date, rm.code


    Выборка нарастающим итогом возможна. 

    Принадлежность к ВК можно определить только по текущему состоянию.

    КонвертацияКонвертация (поставлено на учёт по данным конвертации)1.1.3Проверка списков

    Не формируется на стороне ЕРВУ. Подтверждение можно только получить на стороне силовых ведомств. 
    КонвертацияКонвертация (поставлено на учёт по данным конвертации)1.1.4Загрузка в ЕРВУselect '1.1.4' as id_step, r.current_recruitment_id, r2.name, r.system_create_date::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits_history rh
    join recruits r on r.id=rh.recruit_id
    left join recruitment r2 on r2.id=r.current_recruitment_id
    where "event" ='Запись импортирована из ГИР. Ожидается конвертация гражданина'
    and r.system_create_date::date >= '12.02.2024'::date
    group by r.current_recruitment_id, r2.name, r.system_create_date::date, r2.code , r2.region
    order by r2.region, r.system_create_date::date;


    Выборка нарастающим итогом возможна. 

    Принадлежность к ВК можно определить только по текущему состоянию.

    КонвертацияКонвертация (поставлено на учёт по данным конвертации)1.1.5Подтверждение в ЕРВУ сведений о  состоящих на учетеselect '1.1.5' as id_step, coalesce(rm."name",'ВК не определен'),rh.date_time::date, rm.code , count(*)
    from public.recruits r
    inner join public.recruits_history rh on r.id = rh.recruit_id
    left join public.recruitment rm on rm.id = coalesce(r.current_recruitment_id, r.target_recruitment_id)
    where rh.status = '12.1'
    group by rm."name",rh.date_time::date, rm.code


    Выборка нарастающим итогом возможна. 

    Принадлежность к ВК можно определить только по текущему состоянию.

    КонвертацияКонвертация (поставлено на учёт по данным конвертации)1.1.6Уведомления на ЕПГУselect '1.1.6' as id_step, vk_id, created_at::date, count(*)
    from public.notifications n
    where n."type" = 'MILITARY_RECORD_12'
    group by vk_id, created_at::date


    Выборка нарастающим итогом возможна. Количество направленных уведомлений (всех видов)  по состоянию на дату выгрузки 
    КонвертацияКонвертация (поставлено на учёт по данным конвертации)1.1.7Запрос информации в ЛК РП


    В текущей реализации от ЛК РП можно получать следующие данные: авторизация в системе, запрос выписки.  Остальные данные потребуют доработок системы

    Нет связки с ВК

    Постановка на учётВыгрузка из ГИР ВУ2.1.1Формирование

    Не формируется на стороне ЕРВУ. Собрать возможно только в ГИР.
    Постановка на учётВыгрузка из ГИР ВУ2.1.2Загрузка в ЕРВУselect '2.1.2' as id_step, r2.id, r2.name,r.system_create_date::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    join recruits_history rh on r.id  = rh.recruit_id
    join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where registration_reasons->>0 is not null and "source" ='1'  -- данные из ГИР
    and registration_reasons->>0<>'Изменился адрес'
    --and region not in ('50')
    group by r2.id, r2.name,r.system_create_date::date, r2.code , r2.region
    order by r2.name,r.system_create_date::date
    select '2.1.2' as id_step, r2.id, r2.name,rh.date_time::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    join recruits_history rh on r.id  = rh.recruit_id and rh.status = '1'
    left join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where "source" ='1'  -- данные из ГИР
    group by r2.id, r2.name,rh.date_time::date, r2.code , r2.region
    order by r2.name,rh.date_time::date

    Выборка нарастающим итогом возможна. 

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный, надо отсеять записи истории по статусу, оставив статус 1

    Постановка на учётВыгрузка из ГИР ВУ2.1.3Достижение 17 летselect '2.1.3' id_step, region,rm."name", dt, count(distinct r.id), rm.code
    from recruits r
    join (select recruit_id,min(date_time)::date dt from recruits_history where status = '1'    -- "Предпоставлен"
      group by recruit_id) rh on r.id = rh.recruit_id
    join recruitment rm on rm.id = coalesce(r.current_recruitment_id, r.target_recruitment_id) and region<>'50'
    where r.source = '1' -- данные из ГИР
    and 2024-extract (year from birth_date)=17 and "source" ='1'
    group by region,rm."name",dt, rm.code
    order by 2,3,4;
    select '2.1.3' as id_step, r2.id, r2.name,rh.date_time::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    join recruits_history rh on r.id  = rh.recruit_id and rh.status = '1'
    left join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where "source" ='1'  -- данные из ГИР
        and 2024-extract (year from birth_date)=17
    group by r2.id, r2.name,rh.date_time::date, r2.code , r2.region
    order by r2.name,rh.date_time::date

    Выборка нарастающим итогом возможна. 

    Принадлежность к ВК можно определить только по текущему состоянию.

    Постановка на учётВыгрузка из ГИР ВУ2.1.4Возвратившиеся из мест лишения свободыselect '2.1.4' as id_step, r2.id, r2.name, r.system_create_date::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where   "source" ='1'  -- данные ГИР
    and registration_reasons->>0='Освобождение из мест лишения свободы'
    -- extra_info->>'dateRelease' is not null  ???
    group by r2.id, r2.name, r.system_create_date::date dt, r2.code , r2.region
    order by r2.name, r.system_create_date::date
    select '2.1.4' as id_step, r2.id, r2.name,rh.date_time::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    join recruits_history rh on r.id = rh.recruit_id and rh.status = '1'
    left join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where "source" ='1' -- данные из ГИР
      and registration_reasons->>0='1'
    group by r2.id, r2.name,rh.date_time::date, r2.code , r2.region
    order by r2.name,rh.date_time::date

    Выборка нарастающим итогом возможна. 

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный, причины регистрации изменили.

    Постановка на учётВыгрузка из ГИР ВУ2.1.5Находящиеся в местах лишения свободыselect '2.1.5' as id_step, r2.id, r2.name, r.system_create_date::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where   "source" ='1'  -- данные ГИР
    and addresses ->1->>'type' ='criminalAddress'
    -- extra_info->>'dateRelease' is not null  ???
    group by r2.id, r2.name, r.system_create_date::date, r2.code, r2.region
    order by r2.name, r.system_create_date::date
    select '2.1.5' as id_step, r2.id, r2.name,rh.date_time::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    join recruits_history rh on r.id = rh.recruit_id and rh.status = '1'
    left join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where "source" ='1' -- данные из ГИР
      and registration_reasons->>0='4'
    group by r2.id, r2.name,rh.date_time::date, r2.code , r2.region
    order by r2.name,rh.date_time::date

    Выборка нарастающим итогом возможна. 

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный

    Постановка на учётВыгрузка из ГИР ВУ2.1.6Женщиныselect '2.1.6' as id_step, r2.id, r2.name, r.system_create_date::date dt, r2.code, r2.region, count(distinct r.id)
    from recruits r
    join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where   "source" ='1'  -- данные ГИР
    and registration_reasons->>0='Получение военно-учётной специальности гражданином женского пола'
    group by r2.id, r2.name, r.system_create_date::date, r2.code, r2.region
    order by r2.name, r.system_create_date::date
    select '2.1.6' as id_step, r2.id, r2.name,rh.date_time::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    join recruits_history rh on r.id = rh.recruit_id and rh.status = '1'
    left join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where "source" ='1' -- данные из ГИР
      and registration_reasons->>0='3'
    group by r2.id, r2.name,rh.date_time::date, r2.code , r2.region
    order by r2.name,rh.date_time::date

    Выборка нарастающим итогом возможна. 

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный, причины регистрации изменили.

    Постановка на учётВыгрузка из ГИР ВУ2.1.7Получившие гражданство select '2.1.7' as id_step, r2.id, r2.name, r.system_create_date::date dt, r2.code, r2.region, count(distinct r.id)
    from recruits r
    join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where   "source" ='1'  -- данные ГИР
     and registration_reasons->>0='Приобретение гражданства Российской Федерации'
     and r.system_create_date::date >='12.02.2024'::date
    group by r2.id, r2.name, r.system_create_date::date, r2.code, r2.region
    order by r2.name, r.system_create_date::date
    select '2.1.7' as id_step, r2.id, r2.name,rh.date_time::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    join recruits_history rh on r.id = rh.recruit_id and rh.status = '1'
    left join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where "source" ='1' -- данные из ГИР
      and registration_reasons->>0='2'
    group by r2.id, r2.name,rh.date_time::date, r2.code , r2.region
    order by r2.name,rh.date_time::date

    Выборка нарастающим итогом возможна. 

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный, причины регистрации изменили.

    Постановка на учётВыгрузка из ГИР ВУ2.1.8Сформировано решений о постановке select '2.1.8' as id_step, r.id, r."name", d.created_at::date dt, count(*) 
    from decision d
    inner join recruitment r on d.recruitment_id =r.id
    where d.created_at::date >='12.02.2024'and d."type" ->>'value'='Первоначальная постановка на учёт'
    group by r.id, r."name", d.created_at::date
    order by r."name", d.created_at::date


    Выборка нарастающим итогом возможна. 


    Постановка на учётВыгрузка из ГИР ВУ2.1.9Подписание решений о постановкеselect '2.1.9' as id_step, r.id, r."name", d.created_at::date dt, count(*)
    from decision d
    inner join recruitment r on d.recruitment_id =r.id
    where d.created_at::date >'12.02.2024'::date and d."type" ->>'value'='Первоначальная постановка на учёт' and status ->>'code'='2'
    group by r.id, r."name", d.created_at::date
    order by r."name", d.created_at::date


    Выборка нарастающим итогом возможна. 
    Постановка на учётЗаявления с ЕПГУ2.2.1Поставить на учётselect '2.2.1' as id_step, r2.id, r2.name, r.system_create_date::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    inner join recruits_history h on r.id  = h.recruit_id and h."event" ='Запись создана на основании данных заявления гражданина'
    left join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where   1=1
     and "source" ='3' 
     and r.system_create_date::date >='12.02.2024'::date
    group by r2.id, r2.name, r.system_create_date::date, r2.code , r2.region
    order by r2.name, r.system_create_date::date;
    select '2.2.1' as id_step, r2.id, r2.name, h.date_time::date dt, r2.code , r2.region, count(distinct r.id)
    from recruits r
    inner join recruits_history h on r.id = h.recruit_id and h."event" ='Запись создана на основании данных заявления гражданина' and h.status = '1'
    left join recruitment r2 on r2.id=(coalesce (r.target_recruitment_id ,r.current_recruitment_id ))
    where "source" ='3'
    group by r2.id, r2.name, h.date_time::date, r2.code , r2.region
    order by r2.name, h.date_time::date;

    Выборка нарастающим итогом возможна. 

    Принадлежность к ВК можно определить только по текущему состоянию.

    Постановка на учётЗаявления с ЕПГУ2.2.2Вызвать для уточнения сведенийwith
        all_subpoenas as (
            select
             subpoena.create_date::date as dt,
                subpoena.id as id,
                subpoena.series as series,
                subpoena.number as number,
                subpoena.delivery_info ->>'autoDelivery' as delivery_info_auto,
                subpoena.delivery_info ->>'deliveryType' as delivery_type,
                subpoena_reason.code as reason_code,
                sub_status.code as status_code,
                sub_stat_hist.code as history_status_code,
                summon_list_id as summon_list_id,
                recruitment_code as recruitment_code,
                restriction_document.id as res_doc_id,
                restriction_create.code as res_code_create,
                restriction_cancel.code as res_code_cancel,
                res_doc_item_create.id as res_id_create,
                res_doc_item_cancel.id as res_id_cancel,
                res_doc_item_cancel.status_canceled as res_doc_it_stat_cancel,
                res_doc_item_create.status_applied as res_doc_it_stat_applied
            FROM subpoena
                     JOIN subpoena_history ON subpoena_history.subpoena_id = subpoena.id
                     JOIN subpoena_status AS sub_status ON sub_status.id = subpoena.status_id
                     JOIN subpoena_status AS sub_stat_hist ON sub_stat_hist.id = subpoena_history.status_id
                     JOIN subpoena_reason ON subpoena_reason.id = subpoena.reason_id
                     LEFT JOIN restriction_document ON restriction_document.subpoena_id = subpoena.id
                     LEFT JOIN restriction_document_item AS res_doc_item_create ON res_doc_item_create.restriction_document_create_id = restriction_document.id
                     LEFT JOIN restriction_document_item AS res_doc_item_cancel ON res_doc_item_cancel.restriction_document_cancel_id = restriction_document.id
                     LEFT JOIN restriction AS restriction_create ON restriction_create.id = res_doc_item_create.restriction_id
                     LEFT JOIN restriction AS restriction_cancel ON restriction_cancel.id = res_doc_item_cancel.restriction_id
        )
    SELECT
                '2.2.2' as id_step,
                recruitment_code as code,
                als.dt,
                count(distinct als.id) FILTER (WHERE als.reason_code = '105'),
    from all_subpoenas als
    GROUP BY als.recruitment_code,als.dt


    Выборка нарастающим итогом возможна. 
    Постановка на учётЗаявления с ЕПГУ2.2.3Отказать в приеме и регистрации заявления

    БД arango, нет доступа к данной БДВыборка нарастающим итогом возможна.
    Постановка на учётЗаявления с ЕПГУ2.2.4Инциденты (Отсутствует ID ЕРН после межведомственного взаимодействия с ФНС)SELECT '2.2.4' as id_step, registration_date::date,
    count(distinct incident.id) FILTER (WHERE incidents_error_code.code = 'ipr01001')
    FROM incident
    JOIN incidents_error_code ON incidents_error_code.id = incident.error_code_id
    group by registration_date::date


    Не реализовано

    Нет связки с ВК

    Постановка на учётОтсутствует2.3.1Уведомления  на ЕПГУselect '2.3.1' as id_step, vk_id, created_at::date, count(*)
    from public.notifications n
    where n."type" = 'MILITARY_RECORD_1'
    group by vk_id, created_at::date


    Выборка нарастающим итогом возможна. Количество направленных уведомлений (всех видов)  по состоянию на дату выгрузки.

    Постановка на учётОтсутствует2.3.2Запрос информации в ЛК РП


    В текущей реализации от ЛК РП можно получать следующие данные: авторизация в системе, запрос выписки. Остальные данные потребуют доработок системы

    Нет связки с ВК

    Постановка на учётОтсутствует2.3.3Повесткиwith
        all_subpoenas as (
            select
             subpoena.create_date::date as dt,
                subpoena.id as id,
                subpoena.series as series,
                subpoena.number as number,
                subpoena.delivery_info ->>'autoDelivery' as delivery_info_auto,
                subpoena.delivery_info ->>'deliveryType' as delivery_type,
                subpoena_reason.code as reason_code,
                sub_status.code as status_code,
                sub_stat_hist.code as history_status_code,
                summon_list_id as summon_list_id,
                recruitment_code as recruitment_code,
                restriction_document.id as res_doc_id,
                restriction_create.code as res_code_create,
                restriction_cancel.code as res_code_cancel,
                res_doc_item_create.id as res_id_create,
                res_doc_item_cancel.id as res_id_cancel,
                res_doc_item_cancel.status_canceled as res_doc_it_stat_cancel,
                res_doc_item_create.status_applied as res_doc_it_stat_applied
            FROM subpoena
                     JOIN subpoena_history ON subpoena_history.subpoena_id = subpoena.id
                     JOIN subpoena_status AS sub_status ON sub_status.id = subpoena.status_id
                     JOIN subpoena_status AS sub_stat_hist ON sub_stat_hist.id = subpoena_history.status_id
                     JOIN subpoena_reason ON subpoena_reason.id = subpoena.reason_id
                     LEFT JOIN restriction_document ON restriction_document.subpoena_id = subpoena.id
                     LEFT JOIN restriction_document_item AS res_doc_item_create ON res_doc_item_create.restriction_document_create_id = restriction_document.id
                     LEFT JOIN restriction_document_item AS res_doc_item_cancel ON res_doc_item_cancel.restriction_document_cancel_id = restriction_document.id
                     LEFT JOIN restriction AS restriction_create ON restriction_create.id = res_doc_item_create.restriction_id
                     LEFT JOIN restriction AS restriction_cancel ON restriction_cancel.id = res_doc_item_cancel.restriction_id
        )
    SELECT
                '2.3.3' as id_step,
                recruitment_code as code,
                als.dt,
                count(distinct als.id) FILTER (WHERE als.summon_list_id IS NULL)
    from all_subpoenas als
    GROUP BY als.recruitment_code,als.dt;


    Выборка нарастающим итогом возможна. Количество направленных повесток по первоначальной постановке на ВУ по состоянию на дату выгрузки
    Постановка на учётОтсутствует2.3.4ЯвилисьSELECT  '2.3.4' as id_step, date_time::date as dt, s.recruitment_code , s.recruitment_name,
    (count(distinct subpoena_id) FILTER (WHERE code = '4.1')) + (count(distinct subpoena_id) FILTER (WHERE code = '4.2')) as count
    FROM subpoena s
    join subpoena_history h on h.subpoena_id =s.id
    inner JOIN subpoena_status ON subpoena_status.id = subpoena_history.status_id
    WHERE subpoena_status.code IN ('4.1', '4.2')
    group by date_time::date, s.recruitment_code , s.recruitment_name;


    Выборка нарастающим итогом возможна. 
    Постановка на учётОтсутствует2.3.5Учтено данных в Горизонте о постановкеselect '2.3.5' as id_step, rm."name", rm.code, system_create_date::date, count(*)
    from public.recruit_xml_export_list lst
    inner join public.recruitment rm on rm.id = lst.id_vk
    where s3url like '%.xml'
    group by rm."name",rm.code, system_create_date::date



    Постановка на учётОтсутствует2.3.6Учтено данных в Горизонте о вызове

    Можно подтвердить только на уровне Горизонта
    АктуализацияОтсутствует3.1.1Формирование данных

    Не формируется на стороне ЕРВУ. Собрать возможно только в ГИР.
    АктуализацияОтсутствует3.1.2Проверка данных

    Не формируется на стороне ЕРВУ. Подтверждение можно только получить на стороне силовых ведомств. 
    АктуализацияОтсутствует3.1.3Загрузка в ЕРВУ (актуализация сведений)select '3.1.3' as id_step, coalesce(rm."name",'ВК не определен') as vk_name, rm.code, rh.date_time::date, count(distinct r.id)
    from public.recruits r
    inner join public.recruits_history rh on r.id = rh.recruit_id
    inner join public.recruitment rm on rm.id = coalesce(r.current_recruitment_id, r.target_recruitment_id)
    where rh.event = 'Запись обновлена сведениями ГИР'
    group by rm."name", rm.code, rh.date_time::date


    Принадлежность к ВК можно определить только по текущему состоянию.
    АктуализацияАктуализация ГИР3.2.1Семейное положениеselect '3.2.1' as id_step, dt, count(distinct t.recruit_id)
    from (
     select object_id recruit_id,h.time_created::date dt, jsonb_array_elements(h.diff_by_internal -> 'updated') ->>'path' updated
     from journal j
     join object_history h on j.id =h.journal_id and h.object_type='Recruit'
     where event_type ='XML_UPDATE' and operation_type='UPDATE' ) t
    where updated='recruitInfo.info.spouse.status'
    group by dt
    order by dt
    select '3.2.1' as id_step, dt, t.main_vk_id, count(distinct t.recruit_id)
    from (
    select object_id recruit_id, h.time_created::date dt, jsonb_array_elements(h.diff_by_internal -> 'updated') ->>'path' updated, j.main_vk_id
    from journal j
    join object_history h on j.id =h.journal_id and h.object_type='Recruit'
    where event_type ='XML_UPDATE' and operation_type='UPDATE' ) t
    where updated='recruitInfo.info.spouse.status'
    group by dt, t.main_vk_id
    order by t.main_vk_id, dt

    Выборка нарастающим итогом возможна.
    АктуализацияАктуализация ГИР3.2.2Смена места учёбыselect '3.2.2' as id_step, dt, count(distinct t.recruit_id)
    from (select time_created::date dt, oh.object_id as recruit_id, jsonb_array_elements(oh.diff_by_internal -> 'added') "added"
     from object_history oh
     where oh.object_type = 'Recruit' and oh.diff_by_internal ->'updated' is not null and oh.diff_by_internal ->>'added' <>'null'
     ) as t
    where t.added->'path' ? 'recruitInfo.info.educationInfo.universities[0].name'  --???
    group by dt
    order by dt
    select '3.2.2' as id_step, dt, t.main_vk_id, count(distinct t.recruit_id)
    from (select time_created::date dt, oh.object_id as recruit_id, jsonb_array_elements(oh.diff_by_internal -> 'added') "added", oh.main_vk_id
    from object_history oh
    where oh.object_type = 'Recruit' and oh.diff_by_internal ->'updated' is not null and oh.diff_by_internal ->>'added' <>'null'
    ) as t
    where t.added->'path' ? 'recruitInfo.info.educationInfo.universities[0].name' --???
    group by dt, t.main_vk_id
    order by t.main_vk_id, dt

    Выборка нарастающим итогом возможна.
    АктуализацияАктуализация ГИР3.2.3Место работыselect '3.2.3' as id_step, dt, count(distinct t.recruit_id)
    from (
     select object_id recruit_id,h.time_created::date dt,jsonb_array_elements(h.diff_by_internal -> 'added') ->>'path' updated
     from journal j
     join object_history h on j.id =h.journal_id and h.object_type='Recruit'
     where event_type ='XML_UPDATE' and operation_type='UPDATE' and h.diff_by_internal ->>'added' <>'null'
     ) t
    where updated='recruitInfo.info.workPlaces[0].fullName'
    group by dt
    order by dt

    select '3.2.3' as id_step, dt, count(distinct t.recruit_id), t.main_vk_id
    from (
    select object_id recruit_id,h.time_created::date dt,jsonb_array_elements(h.diff_by_internal -> 'added') ->>'path' updated, j.main_vk_id
    from journal j
    join object_history h on j.id =h.journal_id and h.object_type='Recruit'
    where event_type ='XML_UPDATE' and operation_type='UPDATE' and h.diff_by_internal ->>'added' <>'null'
    ) t
    where updated='recruitInfo.info.workPlaces[0].fullName'
    group by dt, t.main_vk_id
    order by dt, t.main_vk_id

    Выборка нарастающим итогом возможна.
    АктуализацияАктуализация ГИР3.2.4Образованиеselect '3.2.4' as id_step, dt, count(distinct t.recruit_id)
    from (select time_created::date dt,oh.object_id as recruit_id,jsonb_array_elements(oh.diff_by_internal -> 'added') "added"
     from object_history oh
     where oh.object_type = 'Recruit' and oh.diff_by_internal ->'updated' is not null and oh.diff_by_internal ->>'added' <>'null'
     ) as t
    where  t.added->'path' ? 'recruitInfo.info.educationInfo.russianSpecialities[0].speciality'    --???
    group by dt
    order by dt
    select '3.2.4' as id_step, dt, count(distinct t.recruit_id), t.main_vk_id
    from (select time_created::date dt,oh.object_id as recruit_id,jsonb_array_elements(oh.diff_by_internal -> 'added') "added", oh.main_vk_id
    from object_history oh
    where oh.object_type = 'Recruit' and oh.diff_by_internal ->'updated' is not null and oh.diff_by_internal ->>'added' <>'null'
    ) as t
    where  t.added->'path' ? 'recruitInfo.info.educationInfo.russianSpecialities[0].speciality' --???
    group by dt, t.main_vk_id
    order by dt, t.main_vk_id

    Выборка нарастающим итогом возможна.
    АктуализацияАктуализация ГИР3.2.5ФИОselect '3.2.5' as id_step, dt, count(distinct t.recruit_id)
    from (
     select object_id recruit_id,h.time_created::date dt,jsonb_array_elements(h.diff_by_internal -> 'updated') ->>'path' updated
     from journal j
     join object_history h on j.id =h.journal_id and h.object_type='Recruit'
     where event_type ='XML_UPDATE' and operation_type='UPDATE'
     ) t
    where updated='fullName'
    group by dt
    order by dt
    select '3.2.5' as id_step, dt, count(distinct t.recruit_id), t.main_vk_id
    from (
    select object_id recruit_id,h.time_created::date dt,jsonb_array_elements(h.diff_by_internal -> 'updated') ->>'path' updated, j.main_vk_id
    from journal j
    join object_history h on j.id =h.journal_id and h.object_type='Recruit'
    where event_type ='XML_UPDATE' and operation_type='UPDATE'
    ) t
    where updated='fullName'
    group by dt, t.main_vk_id
    order by dt, t.main_vk_id

    Выборка нарастающим итогом возможна.
    АктуализацияОтсутствует3.3.1Внесены изменения по данным ГИР ВУselect '3.3.1' as id_step, vk_id, created_at::date dt, nt.value, count(*)
    from public.notifications n
    inner join notifications_types nt on n."type" =nt.code
    where n."type" = 'MILITARY_RECORD_13'
    group by vk_id, created_at::date, nt.value


    Выборка нарастающим итогом возможна.


    АктуализацияОтсутствует3.3.2Уведомления на ЕПГУselect
     '3.3.2' as id_step, vk_id, created_at::date, count(*)
    from public.notifications n
    where n."type" = 'MILITARY_RECORD_13'
    group by vk_id, created_at::date


    Выборка нарастающим итогом возможна. Количество направленных уведомлений (всех видов)  по состоянию на дату выгрузки

    АктуализацияОтсутствует3.3.3Запрос информации в ЛК РП


    В текущей реализации от ЛК РП можно получать следующие данные: авторизация в системе, запрос выписки.  Остальные данные потребуют доработок системы

    Нет связки с ВК

    АктуализацияОтсутствует3.3.4Заявлений на ЕПГУ

    БД arango, нет доступа к данной БДВыборка нарастающим итогом возможна.
    Снятие с учетаОтсутствует4.1.1Определение списка лиц для снятия select '4.1.1' as id_step, r.current_recruitment_id, r2."name", system_update_date::date dt, count(*)
    from recruits r
    join recruitment r2 on r.current_recruitment_id =r2.id
    where system_pgs_status ='1.3'  and (vu_current_info->>'removeRegReason'='1' or vu_current_info->>'removeRegReason'='2')
    group by r.current_recruitment_id,r2."name" ,system_update_date::date
    order by r2."name", system_update_date::date
    select '4.1.1' as id_step, r.current_recruitment_id, r2."name", rh.date_time::date dt, count(*)
    from recruits r
    join recruitment r2 on r.current_recruitment_id =r2.id
    inner join recruits_history rh on rh.recruit_id = r.id and rh.status in ('8.15','14')
    group by r.current_recruitment_id,r2."name" , rh.date_time::date
    order by r2."name", rh.date_time::date

    Выборка нарастающим итогом возможна.

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный.

    Снятие с учетаОтсутствует4.1.2Ручное снятие с учётаselect '4.1.2' as id_step, r.current_recruitment_id, r2."name", system_update_date::date dt, count(*)
    from recruits r
    join recruitment r2 on r.current_recruitment_id =r2.id
    where system_pgs_status ='1.3'  and vu_current_info->>'removeRegReason' is null
    group by r.current_recruitment_id, r2."name", system_update_date::date
    order by 3, 4
    select d.recruitment_id, d.created_at::date, count(1)
    from public.decision d --(БД решений)
    inner join public.decision_type dt on dt.id = d.type_id and dt.code = '9'
    where d.extra_info -> 'cause' = '"manual"'
    group by d.recruitment_id, d.created_at::date

    Выборка нарастающим итогом возможна.


    Скрипт некорректный.

    Снятие с учетаАвтоматическое снятие с учёта по данным ГИР4.2.1Поступило от ГИР (всего) из состоящих на учете select  '4.2.1' id_step, region, rm."name", dt, count(*), rm.code
    from recruits r
    join (select recruit_id, min(date_time::date) dt from recruits_history 
       where   "event" ='Подлежит снятию с учёта' group by recruit_id) h on h.recruit_id =r.id
    join recruitment rm on rm.id = r.current_recruitment_id
    group region, rm."name", dt, rm.code
    order by 2,3,4;
    select d.recruitment_id, d.created_at::date, count(1)
    from public.decision d --(БД решений)
    inner join public.decision_type dt on dt.id = d.type_id and dt.code = '9'
    where d.extra_info -> 'cause' = '"notAlive"'
    group by d.recruitment_id, d.created_at::date

    Выборка нарастающим итогом возможна.

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный.

    Снятие с учетаАвтоматическое снятие с учёта по данным ГИР4.2.2Смертьselect '4.2.2' as id_step, r.current_recruitment_id, r2."name", system_update_date::date dt, count(*)
    from recruits r
    inner join recruitment r2 on r.current_recruitment_id =r2.id
    where system_pgs_status ='1.3'  and vu_current_info->>'removeRegReason'='1'
    group by r.current_recruitment_id, r2."name", system_update_date::date
    order by r2."name", system_update_date::date
    select d.recruitment_id, d.created_at::date, count(1)
    from public.decision d --(БД решений)
    inner join public.decision_type dt on dt.id = d.type_id and dt.code = '9'
    where d.extra_info -> 'cause' = '"notAlive"'
    group by d.recruitment_id, d.created_at::date

    Выборка нарастающим итогом возможна.

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный.

    Снятие с учетаАвтоматическое снятие с учёта по данным ГИР4.2.375 летselect '4.2.3' as id_step, r.current_recruitment_id, r2."name", system_update_date::date dt, count(*)
    from recruits r
    join recruitment r2 on r.current_recruitment_id =r2.id
    where system_pgs_status ='1.3'  and vu_current_info->>'removeRegReason'='2'
    group by r.current_recruitment_id,r2."name" ,system_update_date::date
    order by r2."name", system_update_date::date
    select d.recruitment_id, d.created_at::date, count(1)
    from public.decision d --(БД решений)
    inner join public.decision_type dt on dt.id = d.type_id and dt.code = '9'
    where d.extra_info -> 'cause' = '"ageLimit"'
    group by d.recruitment_id, d.created_at::date

    Выборка нарастающим итогом возможна.

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный.

    Снятие с учетаАвтоматическое снятие с учёта по данным ГИР4.2.4Сгенерированных решенийselect '4.2.4' as id_step, d.recruitment_id, t.name, created_at::date dt, count(*) "Всего решений", count(distinct recruit_id) "Человек"
    from decision d
    join recruitment t on d.recruitment_id=t.id
    where d."name" like 'Решение о снятии с воинского уч_та' and created_at >='12.02.2024' and
    exists (select 1 from recruits r where d.recruit_id =r.id and system_pgs_status ='1.3'  and vu_current_info->>'removeRegReason' is not null )
    group by d.recruitment_id, t.name, created_at::date
    order by d.recruitment_id, t.name, created_at::date
    select d.recruitment_id, d.created_at::date, count(1)
    from public.decision d --(БД решений)
    inner join public.decision_type dt on dt.id = d.type_id and dt.code = '9'
    where d.extra_info -> 'cause' = '"notAlive"'
    group by d.recruitment_id, d.created_at::date

    Выборка нарастающим итогом возможна.

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный.

    Снятие с учетаАвтоматическое снятие с учёта по данным ГИР4.2.5Подписано ВКselect '4.2.5' as id_step, d.recruitment_id, t.name, created_at::date dt, count(1) "Всего решений", count(distinct recruit_id) "Человек"
    from decision d
    join recruitment t on d.recruitment_id=t.id
    where d."name" like 'Решение о снятии с воинского уч_та' and created_at >'12.02.2024' and status->>'code' ='2'and
    exists (select 1 from recruits r where d.recruit_id =r.id and system_pgs_status ='1.3'  and vu_current_info->>'removeRegReason' is not null )
    group by d.recruitment_id, t.name, created_at::date dt
    order by t.name, created_at::date
    select d.recruitment_id, d.created_at::date, count(1)
    from public.decision d --(БД решений)
    inner join public.decision_type dt on dt.id = d.type_id and dt.code = '9'
    inner join public.decision_status ds ON ds.id = d.status_id and ds.code = '1'
    where d.extra_info -> 'cause' = '"notAlive"'
    group by d.recruitment_id, d.created_at::date

    Выборка нарастающим итогом возможна.

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный.

    Снятие с учетаОтсутствует4.3.1Уведомления на ЕПГУ select '4.3.1' as id_step, vk_id, created_at::date, count(1)
    from public.notifications n where n."type" = 'MILITARY_RECORD_11'
    group by vk_id, created_at::date


    Выборка нарастающим итогом возможна. Количество направленных уведомлений (всех видов)  по состоянию на дату выгрузки
    Снятие с учетаОтсутствует4.3.2Изменений в Реестре Воинского учетаselect coalesce(rm."name",'ВК не определен'),rm.code , count(distinct r.id)
    from public.recruits r
    inner join public.recruits_history rh on r.id = rh.recruit_id
    left join public.recruitment rm on rm.id = coalesce(r.current_recruitment_id, r.target_recruitment_id)
    where rh.status = '1.3'
    group by rm."name",rm.code
    select coalesce(rm."name",'ВК не определен'),rm.code , count(distinct r.id), rh.date_time::date
    from public.recruits r
    inner join public.recruits_history rh on r.id = rh.recruit_id
    left join public.recruitment rm on rm.id = coalesce(r.current_recruitment_id, r.target_recruitment_id)
    where rh.status = '1.3'
    group by rm."name",rm.code, rh.date_time::date

    Выборка нарастающим итогом возможна.

    Принадлежность к ВК можно определить только по текущему состоянию.

    Скрипт некорректный.

    Снятие с учетаОтсутствует4.3.3Запрос информации в ЛК РП


    В текущей реализации от ЛК РП можно получать следующие данные: авторизация в системе, запрос выписки.  Остальные данные потребуют доработок системы

    Нет связи с ВК

    Снятие с учетаОтсутствует4.3.4Учтено данных  в Горизонте

    Отсутствует взаимодействие ЕРВУ с Горизонтом по снятым с учета
    Смена ВКПерепостановка ГИР5.1.1Выгрузка из ГИР ВУ

    Не формируется на стороне ЕРВУ. Собрать возможно только в ГИР.
    Смена ВКПерепостановка ГИР5.1.2Проверка данных

    Не формируется на стороне ЕРВУ. Подтверждение можно только получить на стороне силовых ведомств. 
    Смена ВКПерепостановка ГИР5.1.3Загрузка в ЕРВУ сведений о смене адреса гражданинаselect  '5.1.3' id_step, region, coalesce(rm."name",'Всего') as vk_name, rh.date_time::date dt, count(distinct rh.recruit_id), rm.code
    from  recruits_history rh
    inner join recruitment rm on rm.id = rh.target_recruitment_id
    where rh."event" = 'Запись обновлена сведениями ГИР'
     and rh.date_time::date>='01.03.2024'  --искусственно  - чтобы отделить от других шагов
    group by region,rm."name",rh.date_time::date, rm.code
    order by 2,3,4;
    SELECT rm.name,pf.request_datetime::date,count(1) 
    FROM public.recruit_private_file pf
    inner join public.recruitment rm on rm.id = pf.sending_recruitment_id
    where pf.extra_info->'applicationId' = 'null'
    group by rm.name, pf.request_datetime::date

    Выборка по нарастающим итогам возможна.

    Смена ВКПерепостановка ГИР5.1.4Запрос личного делаselect '5.1.4' id_step, region, coalesce(rm."name",'Всего') as vk_name, f.created_at::date dt, count(*), rm.code
    from recruit_private_file f
    inner join recruit_private_file_status s on f.recruit_private_file_status_id =s.id -- ???  статусы ???
     and s."name" in ('Загрузка личного дела подтверждена','Код загрузки личного дела отправлен','Личное дело запрошено')
    inner join recruitment rm on rm.id = f.requested_recruitment_id
    where not exists (select 1 from "application" where reason_code = 'changeVK' and recruit_id=f.recruit_id)
    group by region, rm."name", f.created_at::date, rm.code
    order by 2,3,4;
    select '5.1.4' id_step, region, coalesce(rm."name",'Всего') as vk_name, pf.request_datetime::date dt, count(*), rm.code
    from recruit_private_file pf
    inner join recruit_private_file_status s on pf.recruit_private_file_status_id =s.id -- ???  статусы ???
     and s."name" in ('Загрузка личного дела подтверждена','Код загрузки личного дела отправлен','Личное дело запрошено')
    inner join recruitment rm on rm.id = pf.sending_recruitment_id
    where pf.extra_info->'applicationId' = 'null'
    group by region, rm."name", pf.request_datetime::date, rm.code
    order by 2,3,4;

    Выборка нарастающим итогом возможна.


    Смена ВКПерепостановка ГИР5.1.5Получить личное делоselect '5.1.5' id_step, region, coalesce(rm."name",'Всего') as vk_name, f.created_at::date dt, count(*), rm.code
    from recruit_private_file f
    inner join recruit_private_file_status s on f.recruit_private_file_status_id =s.id and s."name"='Загрузка личного дела подтверждена'
    inner join recruitment rm on rm.id = f.requested_recruitment_id
    where not exists (select 1 from "application" where reason_code = 'changeVK' and recruit_id=f.recruit_id)
    group by region, rm."name", f.created_at::date, rm.code
    order by 2,3,4;
    select '5.1.5' id_step, region, coalesce(rm."name",'Всего') as vk_name, pf.request_datetime::date dt, count(*), rm.code
    from recruit_private_file pf
    inner join recruit_private_file_status s on pf.recruit_private_file_status_id =s.id -- ???  статусы ???
     and s."name" = 'Код загрузки личного дела отправлен'
    inner join recruitment rm on rm.id = pf.sending_recruitment_id
    where pf.extra_info->'applicationId' = 'null'
    group by region, rm."name", pf.request_datetime::date, rm.code
    order by 2,3,4;

    Выборка нарастающим итогом возможна.


    Смена ВКПерепостановка ГИР5.1.6Поставить на воинский учёт по новому адресуselect '5.1.6' id_step, region, coalesce(rm."name",'Всего') as vk_name, h.date_time ::date dt, count(distinct f.recruit_id), rm.code
    from recruit_private_file f
    inner join recruits_history h on h.recruit_id =f.recruit_id and h.status ='2.1' and h.date_time >coalesce (f.send_datetime, f.created_at )
    inner join recruitment rm on rm.id = f.requested_recruitment_id
    where not exists (select 1 from "application" where reason_code = 'changeVK' and recruit_id=f.recruit_id)
    group by region,rm."name",h.date_time ::date, rm.code
    order by 2,3,4;
    select '5.1.6' id_step, region, coalesce(rm."name",'Всего') as vk_name, pf.request_datetime::date dt, count(*), rm.code
    from recruit_private_file pf
    inner join recruit_private_file_status s on pf.recruit_private_file_status_id =s.id -- ???  статусы ???
     and s."name" = 'Загрузка личного дела подтверждена'
    inner join recruitment rm on rm.id = pf.sending_recruitment_id
    where pf.extra_info->'applicationId' = 'null'
    group by region, rm."name", pf.request_datetime::date, rm.code
    order by 2,3,4;

    Выборка нарастающим итогом возможна.


    Смена ВКПерепостановка ГИР5.1.7Уведомления на ЕПГУ о постановке на ВУselect '5.1.7' id_step, coalesce(rm."name", 'not defined') as vk_name, rh_send.date_time::date send_date,  count(1) changeVkGirNotif
    from public.recruits r
    inner join public.recruits_history rh_reg on rh_reg.recruit_id = r.id and rh_reg.event = 'Гражданин поставлен на учет в связи со сменой адреса регистрации'
    inner join public.recruits_history rh_send on rh_send.recruit_id = r.id and rh_send.event = 'Отправлено уведомление о постановке на воинский учет в ЛК ЕПГУ' and rh_send.date_time between rh_reg.date_time and (rh_reg.date_time + '1 min'::interval)
    left join public.recruitment rm on rm.id = rh_reg.current_recruitment_id
    where not exists (
    select 1 from public.application app where app.reason_code = 'changeVK' and app.recruit_id = r.id
    )
    and rh_send.date_time between '2000-01-01'::date and '9999-12-31'::date
    group by coalesce(rm.""name"", 'not defined'), rh_send.date_time::date
    order by 2, 3
    select '5.1.7' id_step, region, coalesce(rm."name",'Всего') as vk_name, pf.request_datetime::date dt, count(*), rm.code
    from recruit_private_file pf
    inner join recruit_private_file_status s on pf.recruit_private_file_status_id =s.id -- ???  статусы ???
     and s."name" = 'Загрузка личного дела подтверждена'
    inner join recruitment rm on rm.id = pf.sending_recruitment_id
    where pf.extra_info->'applicationId' = 'null'
    group by region, rm."name", pf.request_datetime::date, rm.code
    order by 2,3,4;

    Выборка нарастающим итогом возможна. Количество направленных уведомлений (всех видов)  по состоянию на дату выгрузки
    Смена ВКПерепостановка ГИР5.1.8Запрос информации в ЛК РП


    В текущей реализации от ЛК РП можно получать следующие данные: авторизация в системе, запрос выписки.  Остальные данные потребуют доработок системы

    Смена ВК

    Смена ВКПерепостановка ЕПГУ (заявления)5.2.1Заявлений на ЕПГУselect '5.2.1' id_step, coalesce(rm."name", 'not defined') as vk_name, app.date_start app_date, count(1) changeVkEPGU
    from public.application app
    inner join public.recruits r on r.id = app.recruit_id
    left join public.recruitment rm on rm.id = coalesce(r.current_recruitment_id, target_recruitment_id)
    where reason_code = 'changeVK'
    and app.date_start between '2000-01-01'::date and '9999-12-31'::date
    group by coalesce(rm.""name"", 'not defined'), app.date_start
    order by 2, 3


    Выборка нарастающим итогом возможна.

    Принадлежность к ВК можно определить только по текущему состоянию.


    Смена ВКПерепостановка ЕПГУ (заявления)5.2.2Запрос личного делаselect '5.2.2' id_step, region, rm."name" as vk_name, f.created_at::date dt, count(1), rm.code
    from recruit_private_file f
    inner join recruit_private_file_status s on f.recruit_private_file_status_id =s.id
     and s."name" in ('Загрузка личного дела подтверждена','Код загрузки личного дела отправлен','Личное дело запрошено')
    inner join recruitment rm on rm.id = f.requested_recruitment_id
    where exists (select 1 from "application" where reason_code = 'changeVK' and recruit_id=f.recruit_id)
    group by region, rm."name", f.created_at::date, rm.code
    order by 2,3,4;
    select '5.2.2' id_step, region, coalesce(rm."name",'Всего') as vk_name, pf.request_datetime::date dt, count(*), rm.code
    from recruit_private_file pf
    inner join recruit_private_file_status s on pf.recruit_private_file_status_id =s.id -- ???  статусы ???
     and s."name" in ('Загрузка личного дела подтверждена','Код загрузки личного дела отправлен','Личное дело запрошено')
    inner join recruitment rm on rm.id = pf.sending_recruitment_id
    where pf.extra_info->'applicationId' != 'null'
    group by region, rm."name", pf.request_datetime::date, rm.code
    order by 2,3,4;

    Выборка нарастающим итогом возможна.


    Смена ВКПерепостановка ЕПГУ (заявления)5.2.3Получить личное делоselect '5.2.3' id_step, coalesce(rm."name", 'not defined') as vk_name, app.date_start app_date, count(1) changeVkEpguSend
    from public.application app
    inner join public.recruits r on r.id = app.recruit_id
    inner join public.recruits_history rh on rh.recruit_id = r.id and rh.event = 'Код загрузки личного дела отправлен'
    left join public.recruitment rm on rm.id = coalesce(r.current_recruitment_id, r.target_recruitment_id)
    where reason_code = 'changeVK'
    and app.date_start between '2000-01-01'::date and '9999-12-31'::date
    group by coalesce(rm.""name"", 'not defined'), app.date_start
    order by 2, 3
    select '5.2.3' id_step, region, coalesce(rm."name",'Всего') as vk_name, pf.request_datetime::date dt, count(*), rm.code
    from recruit_private_file pf
    inner join recruit_private_file_status s on pf.recruit_private_file_status_id =s.id -- ???  статусы ???
     and s."name" = 'Код загрузки личного дела отправлен'
    inner join recruitment rm on rm.id = pf.sending_recruitment_id
    where pf.extra_info->'applicationId' != 'null'
    group by region, rm."name", pf.request_datetime::date, rm.code
    order by 2,3,4;

    Выборка нарастающим итогом возможна.


    Смена ВКПерепостановка ЕПГУ (заявления)5.2.4Поставить на воинский учёт по новому адресуselect '5.2.4' id_step, region, rm."name" as vk_name, h.date_time ::date dt, count(distinct f.recruit_id), rm.code
    from recruit_private_file f
    inner join recruits_history h on h.recruit_id =f.recruit_id and h.status ='2.1' and h.date_time >coalesce (f.send_datetime, f.created_at )
    inner join recruitment rm on rm.id = f.requested_recruitment_id
    where exists (select 1 from "application" where reason_code = 'changeVK' and recruit_id=f.recruit_id)
    group by region, rm."name", h.date_time::date, rm.code
    order by 2,3,4;
    select '5.2.4' id_step, region, coalesce(rm."name",'Всего') as vk_name, pf.request_datetime::date dt, count(*), rm.code
    from recruit_private_file pf
    inner join recruit_private_file_status s on pf.recruit_private_file_status_id =s.id -- ???  статусы ???
     and s."name" = 'Загрузка личного дела подтверждена'
    inner join recruitment rm on rm.id = pf.sending_recruitment_id
    where pf.extra_info->'applicationId' != 'null'
    group by region, rm."name", pf.request_datetime::date, rm.code
    order by 2,3,4;

    Выборка нарастающим итогом возможна.

    Смена ВКПерепостановка ЕПГУ (заявления)5.2.5Уведомления на ЕПГУ о постановке на ВУselect '5.2.5' id_step, coalesce(rm."name", 'not defined') VK, rh_send.date_time::date send_date, count(1) changeVkEpguNotif
    from public.recruits r
    inner join public.recruits_history rh_reg on rh_reg.recruit_id = r.id and rh_reg.event = 'Гражданин поставлен на учет в связи со сменой адреса регистрации'
    inner join public.recruits_history rh_send on rh_send.recruit_id = r.id and rh_send.event = 'Отправлено уведомление о постановке на воинский учет в ЛК ЕПГУ' and rh_send.date_time between rh_reg.date_time and (rh_reg.date_time + '1 min'::interval)
    left join public.recruitment rm on rm.id = rh_reg.current_recruitment_id
    where exists (select 1 from public.application app where app.reason_code = 'changeVK' and app.recruit_id = r.id)
    and rh_send.date_time between '2000-01-01'::date and '9999-12-31'::date
    group by coalesce(rm.""name"", 'not defined'), rh_send.date_time::date
    order by 2, 3
    select '5.2.5' id_step, region, coalesce(rm."name",'Всего') as vk_name, pf.request_datetime::date dt, count(*), rm.code
    from recruit_private_file pf
    inner join recruit_private_file_status s on pf.recruit_private_file_status_id =s.id -- ???  статусы ???
     and s."name" = 'Загрузка личного дела подтверждена'
    inner join recruitment rm on rm.id = pf.sending_recruitment_id
    where pf.extra_info->'applicationId' != 'null'
    group by region, rm."name", pf.request_datetime::date, rm.code
    order by 2,3,4;

    Выборка нарастающим итогом возможна. Количество направленных уведомлений (всех видов)  по состоянию на дату выгрузки
    ОбжалованиеАдминистративная ответственность, уголовная ответственность, обжалование6.1.1Ручное ввод  (административная ответственность)select '6.1.1' id_step, created_at::date, vk_id, 'Административная ответственность'  as typ, count(1)
    from public.infringement
    where type = '0'
    group by created_at::date, vk_id


    Выборка нарастающим итогом возможна. 
    ОбжалованиеАдминистративная ответственность, уголовная ответственность, обжалование6.1.2Ручной ввод  (уголовная ответственность) select '6.1.2' id_step, created_at::date, vk_id, 'Уголовная ответственность' as typ, count(1)
    from public.infringement
    where type = '1'
    group by created_at::date, vk_id


    Выборка нарастающим итогом возможна. 
    ОбжалованиеАдминистративная ответственность, уголовная ответственность, обжалование6.1.3Ручной ввод досудебка  (причина и т.д.)select '6.1.3' id_step, created_at::date, 'Обжалования' as typ, vk_id, count(1)
    from public.appeal_document
    group by created_at::date, vk_id


    Выборка нарастающим итогом возможна. 
    ИнцидентыОтсутствует7.1.1Автоматические - данные с ЕПГУ актуальнее данных ГИР ВУ


    Требуется доработка базы для добавления связки с ВК
    ИнцидентыОтсутствует7.1.2Закрытие (ручное)SELECT '7.1.2' id_step, recruit_id,registration_date::date,
    count(distinct incident.id) FILTER (WHERE incident.status = '1000')
    FROM incident
    group by recruit_id,registration_date::date


    Выборка нарастающим итогом возможна. 
    Реестр повестокДоступ в Реестр повесток8.1.1Состоит на учёте (вход)



    Реестр повестокДоступ в Реестр повесток8.1.2Состоит на учёте (выписка)



    Реестр повестокДоступ в Реестр повесток8.1.3Состоит на учёте (информирование)

    Для ЕРВУ нет различия между входом и информированием. Получить подтверждение информирования можно только у участников проверки (в ручном режиме)
    Реестр повестокДоступ в Реестр повесток8.1.4Не состоит на учёте (вход)



    Реестр повестокДоступ в Реестр повесток8.1.5Не состоит на учёте (выписка)



    Реестр повестокДоступ в Реестр повесток8.1.6Не состоит на учёте (информирование)

    Для ЕРВУ нет различия между входом и информированием. Получить подтверждение информирования можно только у участников проверки (в ручном режиме)
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.1Уточнение документов воинского учетаselect '9.1.1' id_step, department_id, p.recruitment_name, create_date::date, count(*)
    from subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='201'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.2Прохождение медицинского освидетельствования или мероприятий, связанных с нимselect '9.1.2' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='202'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.3Прохождение повторного медицинского освидетельствованияselect '9.1.3' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='203'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.4Прохождение контрольного медицинского освидетельствованияselect '9.1.4' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='204'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.5Прохождение призывной комиссии с целью принятия решения о призыве на военную службуselect '9.1.5' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='205'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.6Прохождение призывной комиссии с целью принятия решения о направлении на альтернативную гражданскую службуselect '9.1.6' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='206'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.7Прохождение призывной комиссии с целью принятия решения о предоставлении отсрочки от призыва на военную службуselect '9.1.7' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='207'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.8Прохождение призывной комиссии с целью принятия решения об освобождении от призыва на военную службу и зачислении в запасselect '9.1.8' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='208'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.9Прохождение призывной комиссии с целью принятия решения об освобождении от исполнения воинской обязанностиselect '9.1.9' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='209'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.10Прохождение призывной комиссии субъекта Российской Федерацииselect '9.1.10' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='210'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток на призыв* (ручное оформление повесток - в рамках функций)9.1.11Отправка к месту прохождения военной службыselect '9.1.11' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='211'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток по ВУ** (ручное оформление повесток - в рамках функций)9.2.1Первоначальная постановки на воинский учетselect '9.2.1' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='101'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток по ВУ** (ручное оформление повесток - в рамках функций)9.2.2Проведение мероприятий по медицинскому освидетельствованию и медицинскому обследованиюselect '9.2.2' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='102'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток по ВУ** (ручное оформление повесток - в рамках функций)9.2.3Проведение мероприятий по профессиональному психологическому отбору гражданselect '9.2.3' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='103'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки 
    ПовесткиПодготовка списков для повесток по ВУ** (ручное оформление повесток - в рамках функций)9.2.4Уточнение военно-учетных данныхselect '9.2.4' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='104'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток по ВУ** (ручное оформление повесток - в рамках функций)9.2.5Сверка сведенийselect '9.2.5' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='105'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток по ВУ** (ручное оформление повесток - в рамках функций)9.2.6Внесение изменений в документы воинского учетаselect '9.2.6' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='106'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиПодготовка списков для повесток по ВУ** (ручное оформление повесток - в рамках функций)9.2.7Получение документов воинского учетаselect '9.2.7' id_step, department_id, p.recruitment_name, create_date ::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='107'
    group by department_id, p.recruitment_name, create_date::date
    order by 3, 4


    Выборка нарастающим итогом возможна. Количество повесток (данной цели вызова) в рамках  индивидуального формирования повестки по состоянию на дату выгрузки
    ПовесткиОтсутствует9.3.1Применение ограничений (призыв)with
        all_subpoenas as (
            select
             subpoena.create_date::date as dt,
                subpoena.id as id,
                subpoena.series as series,
                subpoena.number as number,
                subpoena.delivery_info ->>'autoDelivery' as delivery_info_auto,
                subpoena.delivery_info ->>'deliveryType' as delivery_type,
                subpoena_reason.code as reason_code,
                sub_status.code as status_code,
                sub_stat_hist.code as history_status_code,
                summon_list_id as summon_list_id,
                recruitment_code as recruitment_code,
                restriction_document.id as res_doc_id,
                restriction_create.code as res_code_create,
                restriction_cancel.code as res_code_cancel,
                res_doc_item_create.id as res_id_create,
                res_doc_item_cancel.id as res_id_cancel,
                res_doc_item_cancel.status_canceled as res_doc_it_stat_cancel,
                res_doc_item_create.status_applied as res_doc_it_stat_applied
            FROM subpoena
                     JOIN subpoena_history ON subpoena_history.subpoena_id = subpoena.id
                     JOIN subpoena_status AS sub_status ON sub_status.id = subpoena.status_id
                     JOIN subpoena_status AS sub_stat_hist ON sub_stat_hist.id = subpoena_history.status_id
                     JOIN subpoena_reason ON subpoena_reason.id = subpoena.reason_id
                     LEFT JOIN restriction_document ON restriction_document.subpoena_id = subpoena.id
                     LEFT JOIN restriction_document_item AS res_doc_item_create ON res_doc_item_create.restriction_document_create_id = restriction_document.id
                     LEFT JOIN restriction_document_item AS res_doc_item_cancel ON res_doc_item_cancel.restriction_document_cancel_id = restriction_document.id
                     LEFT JOIN restriction AS restriction_create ON restriction_create.id = res_doc_item_create.restriction_id
                     LEFT JOIN restriction AS restriction_cancel ON restriction_cancel.id = res_doc_item_cancel.restriction_id
        )
    SELECT
                '9.3.1' as id_step,
                recruitment_code as code,
                als.dt,
                count(distinct als.res_id_create) FILTER (WHERE als.res_code_create = '1') as "9.3.1",
    from all_subpoenas als
    GROUP BY als.recruitment_code,als.dt


    Выборка нарастающим итогом возможна. Количество  решений о применении  временных мер (в рамках призыва) по состоянию на дату выгрузки
    ПовесткиОтсутствует9.3.2Уведомления на ЕПГУ
    select '9.3.2' as id_step, vk_id, created_at::date, count(1) from public.notifications n where n."type" in ('MILITARY_RECORD_3')group by vk_id, created_at::date
    Выборка нарастающим итогом возможна. Количество направленных уведомлений (всех видов)  по состоянию на дату выгрузки
    ПовесткиОтсутствует9.3.3Распечатка повесток


    Невозможно на данном этапе

    Какое именно кол-во нужно считать? Если я печатаю одну повестку, но на форме печати указываю 10 копий, в выгрузке должна быть цифра 1 или 10?

    Или если в файле со списком повесток сформированных в рамках списка на вызов 10 экземпляров одной повестки (2 способа направления на 5 типов адресов) - цифра должна быть 1 или 10?

    ПовесткиОтсутствует9.3.4Вручено - отметка вручнуюwith
        all_subpoenas as (
            select
             subpoena.create_date::date as dt,
                subpoena.id as id,
                subpoena.series as series,
                subpoena.number as number,
                subpoena.delivery_info ->>'autoDelivery' as delivery_info_auto,
                subpoena.delivery_info ->>'deliveryType' as delivery_type,
                subpoena_reason.code as reason_code,
                sub_status.code as status_code,
                sub_stat_hist.code as history_status_code,
                summon_list_id as summon_list_id,
                recruitment_code as recruitment_code,
                restriction_document.id as res_doc_id,
                restriction_create.code as res_code_create,
                restriction_cancel.code as res_code_cancel,
                res_doc_item_create.id as res_id_create,
                res_doc_item_cancel.id as res_id_cancel,
                res_doc_item_cancel.status_canceled as res_doc_it_stat_cancel,
                res_doc_item_create.status_applied as res_doc_it_stat_applied
            FROM subpoena
                     JOIN subpoena_history ON subpoena_history.subpoena_id = subpoena.id
                     JOIN subpoena_status AS sub_status ON sub_status.id = subpoena.status_id
                     JOIN subpoena_status AS sub_stat_hist ON sub_stat_hist.id = subpoena_history.status_id
                     JOIN subpoena_reason ON subpoena_reason.id = subpoena.reason_id
                     LEFT JOIN restriction_document ON restriction_document.subpoena_id = subpoena.id
                     LEFT JOIN restriction_document_item AS res_doc_item_create ON res_doc_item_create.restriction_document_create_id = restriction_document.id
                     LEFT JOIN restriction_document_item AS res_doc_item_cancel ON res_doc_item_cancel.restriction_document_cancel_id = restriction_document.id
                     LEFT JOIN restriction AS restriction_create ON restriction_create.id = res_doc_item_create.restriction_id
                     LEFT JOIN restriction AS restriction_cancel ON restriction_cancel.id = res_doc_item_cancel.restriction_id
        )
    SELECT
                '9.3.4' as id_step,
                recruitment_code as code,
                als.dt,
                count(distinct als.id) FILTER (WHERE als.delivery_type = '14' AND delivery_info_auto::boolean = false) as "9.3.4",
    from all_subpoenas als
    GROUP BY als.recruitment_code,als.dt


    Выборка нарастающим итогом возможна.  Количество врученных повесток (специалистом) по состоянию на дату выгрузки
    ПовесткиОтсутствует9.3.5Вручено на 7 день (автоматически)


    Выборка нарастающим итогом возможна.  Количество повесток считается вручена (автоматически) на 7 день по состоянию на дату выгрузки
    ПовесткиОтсутствует9.3.6Отмена ограничений (призыв)with
        all_subpoenas as (
            select
             subpoena.create_date::date as dt,
                subpoena.id as id,
                subpoena.series as series,
                subpoena.number as number,
                subpoena.delivery_info ->>'autoDelivery' as delivery_info_auto,
                subpoena.delivery_info ->>'deliveryType' as delivery_type,
                subpoena_reason.code as reason_code,
                sub_status.code as status_code,
                sub_stat_hist.code as history_status_code,
                summon_list_id as summon_list_id,
                recruitment_code as recruitment_code,
                restriction_document.id as res_doc_id,
                restriction_create.code as res_code_create,
                restriction_cancel.code as res_code_cancel,
                res_doc_item_create.id as res_id_create,
                res_doc_item_cancel.id as res_id_cancel,
                res_doc_item_cancel.status_canceled as res_doc_it_stat_cancel,
                res_doc_item_create.status_applied as res_doc_it_stat_applied
            FROM subpoena
                     JOIN subpoena_history ON subpoena_history.subpoena_id = subpoena.id
                     JOIN subpoena_status AS sub_status ON sub_status.id = subpoena.status_id
                     JOIN subpoena_status AS sub_stat_hist ON sub_stat_hist.id = subpoena_history.status_id
                     JOIN subpoena_reason ON subpoena_reason.id = subpoena.reason_id
                     LEFT JOIN restriction_document ON restriction_document.subpoena_id = subpoena.id
                     LEFT JOIN restriction_document_item AS res_doc_item_create ON res_doc_item_create.restriction_document_create_id = restriction_document.id
                     LEFT JOIN restriction_document_item AS res_doc_item_cancel ON res_doc_item_cancel.restriction_document_cancel_id = restriction_document.id
                     LEFT JOIN restriction AS restriction_create ON restriction_create.id = res_doc_item_create.restriction_id
                     LEFT JOIN restriction AS restriction_cancel ON restriction_cancel.id = res_doc_item_cancel.restriction_id
        )
    SELECT
                '9.3.6' as id_step,
                recruitment_code as code,
                als.dt,
                count(distinct als.res_id_cancel) FILTER (WHERE als.res_code_cancel = '1') as "9.3.6",
    from all_subpoenas als
    GROUP BY als.recruitment_code,als.dt


    Выборка нарастающим итогом возможна. Количество решений об отмене  временных мер (в рамках призыва) по состоянию на дату выгрузки
    ПовесткиОтсутствует9.3.7Применение ограничений (20 дней)select '9.3.7' as id_step, vk_id, rd.recruitment_name, rdi.created_at::date dt, count(*), sum(case when rdi.status_applied = '11' then 1 else 0 end) "Подтверждено реализатором мер"
    FROM restriction_document_item rdi
    join restriction_document rd on rdi.restriction_document_create_id = rd.id
    where rdi.status_applied is not null and decision_reason='Истечение 20 дней со дня неявки по повестке'
    group vk_id, rd.recruitment_name, rdi.created_at::date
    order by vk_id, rd.recruitment_name, rdi.created_at::date


    Выборка нарастающим итогом возможна. Количество решений о применении временных мер (20 дней) по состоянию на дату выгрузки
    ПовесткиОтсутствует9.3.8Отмена ограничений (20 дней)SELECT '9.3.8' as id_step, vk_id, rd.recruitment_name, rdi.created_at::date dt, count(1), sum(case when rdi.status_applied = '11.2' then 1 else 0 end) "Отменено подтвержднгнных реализатором мер"
    FROM restriction_document_item rdi
    inner join restriction_document rd on rdi.restriction_document_create_id = rd.id
    where rdi.status_canceled  is not null and decision_reason='Истечение 20 дней со дня неявки по повестке'
    group by vk_id, rd.recruitment_name, rdi.created_at::date
    order by vk_id, rd.recruitment_name, rdi.created_at::date


    Выборка нарастающим итогом возможна. Количество решений об отмене временных мер (20 дней) по состоянию на дату выгрузки
    ПовесткиОтсутствует9.3.9Запрос информации в ЛК РП


    В текущей реализации от ЛК РП можно получать следующие данные: авторизация в системе, запрос выписки.  Остальные данные потребуют доработок системы

    Нет связи с ВК

    ПовесткиОтсутствует9.3.10Явка не требуетсяselect '9.3.10' as id_step, department_id, p.recruitment_name, create_date::date, count(*)
    from  subpoena p
    join subpoena_status s on p.status_id =s.id
    join subpoena_reason i on p.reason_id  =i.id and i.code='201'
    where  s.code='5.2'
    group by department_id, p.recruitment_name, create_date::date
    order by p.recruitment_name, create_date::date


    Выборка нарастающим итогом возможна. Количество повесток по которым "Явка гражданина не требуется" по состоянию на дату выгрузки
    ПовесткиОтсутствует9.3.11Уважительная причина неявки (через военкомат)with
        all_subpoenas as (
            select
             subpoena.create_date::date as dt,
                subpoena.id as id,
                subpoena.series as series,
                subpoena.number as number,
                subpoena.delivery_info ->>'autoDelivery' as delivery_info_auto,
                subpoena.delivery_info ->>'deliveryType' as delivery_type,
                subpoena_reason.code as reason_code,
                sub_status.code as status_code,
                sub_stat_hist.code as history_status_code,
                summon_list_id as summon_list_id,
                recruitment_code as recruitment_code,
                restriction_document.id as res_doc_id,
                restriction_create.code as res_code_create,
                restriction_cancel.code as res_code_cancel,
                res_doc_item_create.id as res_id_create,
                res_doc_item_cancel.id as res_id_cancel,
                res_doc_item_cancel.status_canceled as res_doc_it_stat_cancel,
                res_doc_item_create.status_applied as res_doc_it_stat_applied
            FROM subpoena
                     JOIN subpoena_history ON subpoena_history.subpoena_id = subpoena.id
                     JOIN subpoena_status AS sub_status ON sub_status.id = subpoena.status_id
                     JOIN subpoena_status AS sub_stat_hist ON sub_stat_hist.id = subpoena_history.status_id
                     JOIN subpoena_reason ON subpoena_reason.id = subpoena.reason_id
                     LEFT JOIN restriction_document ON restriction_document.subpoena_id = subpoena.id
                     LEFT JOIN restriction_document_item AS res_doc_item_create ON res_doc_item_create.restriction_document_create_id = restriction_document.id
                     LEFT JOIN restriction_document_item AS res_doc_item_cancel ON res_doc_item_cancel.restriction_document_cancel_id = restriction_document.id
                     LEFT JOIN restriction AS restriction_create ON restriction_create.id = res_doc_item_create.restriction_id
                     LEFT JOIN restriction AS restriction_cancel ON restriction_cancel.id = res_doc_item_cancel.restriction_id
        )
    SELECT
                '9.3.11' as id_step,
                recruitment_code as code,
                als.dt,
                count(distinct als.id) FILTER (WHERE als.history_status_code = '5.1') as "9.3.11"
    from all_subpoenas als
    GROUP BY als.recruitment_code,als.dt


    Выборка нарастающим итогом возможна. Количество неявок по повестке с уважительной причиной по состоянию на дату выгрузки
    Рассылка уведомленийРассылка уведомлений10.1.1Количество записей


    Не ясно что за показатель
    Рассылка уведомленийРассылка уведомлений10.1.2Количество потоков обработки (сотрудник + АРМ)



    Рассылка уведомленийРассылка уведомлений10.1.3Уведомлений на ЕПГУ (всего)


    Выборка нарастающим итогом возможна. 
    Написать комментарий...